﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Csla;
using log4net;

namespace Sireass.Bl
{
	[Serializable]
	public class ProyectoEncargadoCriteria : CriteriaBase<ProyectoEncargadoCriteria>
	{
		#region Propiedades
		// Create a logger for use in this class
		private static readonly ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
		public static readonly PropertyInfo<long?> IdProyectoEncargadoProperty = RegisterProperty<long?>(c => c.IdProyectoEncargado);
		public long? IdProyectoEncargado
		{
			get { return ReadProperty(IdProyectoEncargadoProperty); }
			private set { LoadProperty(IdProyectoEncargadoProperty, value); }
		}
		public static readonly PropertyInfo<long?> IdProyectoProperty = RegisterProperty<long?>(c => c.IdProyecto);
		public long? IdProyecto
		{
			get { return ReadProperty(IdProyectoProperty); }
			private set { LoadProperty(IdProyectoProperty, value); }
		}
		public static readonly PropertyInfo<long?> IdPersonaEncargadoProperty = RegisterProperty<long?>(c => c.IdPersonaEncargado);
		public long? IdPersonaEncargado
		{
			get { return ReadProperty(IdPersonaEncargadoProperty); }
			private set { LoadProperty(IdPersonaEncargadoProperty, value); }
		}
		public static readonly PropertyInfo<bool?> HabilitadoProperty = RegisterProperty<bool?>(c => c.Habilitado);
		public bool? Habilitado
		{
			get { return ReadProperty(HabilitadoProperty); }
			private set { LoadProperty(HabilitadoProperty, value); }
		}
		public static readonly PropertyInfo<DateTime?> FechaAltaProperty = RegisterProperty<DateTime?>(c => c.FechaAlta);
		public DateTime? FechaAlta
		{
			get { return ReadProperty(FechaAltaProperty); }
			private set { LoadProperty(FechaAltaProperty, value); }
		}
		public static readonly PropertyInfo<DateTime?> FechaBajaProperty = RegisterProperty<DateTime?>(c => c.FechaBaja);
		public DateTime? FechaBaja
		{
			get { return ReadProperty(FechaBajaProperty); }
			private set { LoadProperty(FechaBajaProperty, value); }
		}
		#endregion

		#region Factory
		public ProyectoEncargadoCriteria(long? idProyectoEncargado, long? idProyecto, long? idPersonaEncargado, 
			bool? habilitado, DateTime? fechaAlta, DateTime? fechaBaja)
		{
			IdProyectoEncargado = idProyectoEncargado;
			IdProyecto = idProyecto;
			IdPersonaEncargado = idPersonaEncargado;			
			Habilitado = habilitado;
			FechaAlta = fechaAlta;
			FechaBaja = fechaBaja;
		}
		#endregion
	}
}
